As is well known, computer applications written for a Windows-type or Mac-type operating system platform, when executed, present a variety of objects within a window. These objects are layered on top of one another. The window can also be layered over top of other application windows. For example, word processing applications enable a user to type text over top of a document image displayed within a window while graphics applications enable a user to create and manipulate shapes over top of a document image displayed within a window. Both the word processing application and graphics application windows can be layered over top of other applications.
Many techniques for handling and displaying layered application windows have been considered. For example, U.S. Pat. No. 5,831,615 to Drews et al. discloses a method and apparatus for re-drawing a transparent window on a display device. If a transparent window and an underlying second window exist, a check is made to determine if the underlying second window is active. If it is determined that the underlying second window is active, the underlying second window is re-drawn on the display device and the transparent window is shown. If the underlying second window is not active, the transparent window is maintained.
U.S. Pat. No. 5,949,432 to Gough et al. discloses a method and apparatus for producing a translucent image over a base image created on a display by a selected first application program. The first application program runs on a central processing unit and produces the base image. An overlay program produces the translucent image such that portions of the base image which are overlapped by the overlay image are at least partially visible through the translucent image.
U.S. Pat. No. 6,275,236 to Delahunty discloses a system and method for displaying tracked objects on a display. The current location and a number of previous locations of the objects are written with pixel values having non-zero overlay data. An ordered set of codes is written into pixel values for the current location and the set of codes is indicated to a driver. The driver uses the overlay data displaying the current and previous object locations sequentially in order of the set. The displayed locations may be displayed by unmasking the overlay data.
With respect to computer applications comprising layered objects, providing rich animated content in such computer applications to enhance the visual impact that the computer applications have on viewers is common. Such rich animated content may for example take the form of Java applets, Macromedia Flash, Apple Quicktime video, RealVideo and Widows Media Player video to name a few.
Typically, when animated content is to be embedded into a computer application, a window residing on top of the computer application is established by the computer application into which the animated content is to be drawn. The computer application then tells the player responsible for playing the animated content where the window is, allowing the player to draw into the window directly on-screen without notifying the computer application. Although this enables the animated content to be drawn efficiently, it has drawbacks as the window for the animated content resides on top of the computer application and thus, always remains visible. As will be appreciated, this can be problematic in some environments, such as for example in interactive applications where users write, annotate and draw on displayed images. Because the window for the animated content resides on top of the computer application, users are unable to draw over the animated content effectively reducing the interactive area of the computer application.
Attempts to deal with this problem have been considered. For example, to enable animated content to be incorporated into an interactive computer application without reducing the interactive area of the computer application, rather than having the player write the animated content directly on-screen into a window residing on top of the computer application, the player is directed to write the animated content to an off-screen buffer or bitmap. The bitmap is treated by the computer application as an object and is drawn by the computer application within its window allowing annotations, writing etc. to appear over the animated content. Unfortunately, forcing the player to write the animated content to the off-screen buffer is extremely slow as compared to writing directly to a window on-screen. Copying the animated content from the off-screen buffer to the computer application for display is also very slow. The end result is a significant drop in performance making this approach impractical. As will be appreciated, there exists a need for improvements in embedding animated content into computer applications.
It is therefore an object of the present invention to provide a novel method and graphical interface for embedding animated content into a computer application.